const AdminBiz = require('../../../../store/admin_biz_config.js');
// 导入路径辅助模块，避免重复引用
const pathImport = require('../helpers/path_import.js');
const { pageHelper, validate } = pathImport;
const AdminWhiteBiz = require('../../../../biz/admin_white_biz.js');
const projectSetting = require('../../../../../../config/projects_config.js');
import { createStoreBindings } from '../../../../../../miniprogram_npm/mobx-miniprogram-bindings/index';
import { whiteStore } from '../../../../../../store/modules/system/white_store';

Page({

	/**
	 * 页面的初始数据
	 */
	data: {

	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: async function (options) {
		if (!AdminBiz.isAdmin(this)) return;

		wx.setNavigationBarTitle({
			title: projectSetting.WHITE_NAME + '-添加',
		});

		// 创建MobX绑定
		this.storeBindings = createStoreBindings(this, {
			store: whiteStore,
			fields: ['formData', 'isLoad'],
			actions: ['initFormData', 'updateForm', 'submitForm'],
		});

		// 初始化表单数据
		this.initFormData();
		
		// 确保数据初始化完成后再设置isLoad为true
		setTimeout(() => {
			this.setData({
				isLoad: true
			});
		}, 300);
	}, 
 

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {
		// 清理MobX绑定
		this.storeBindings.destroyStoreBindings();
	},

	model: function (e) {
		// 使用MobX更新表单字段
		const { field, value } = pageHelper.getModel(e);
		this.updateForm('form' + field, value);
	},


	/** 
	 * 数据提交
	 */
	bindFormSubmit: async function () {
		if (!AdminBiz.isAdmin(this)) return;

		try {
			// 获取表单数据
			const formData = this.data.formData;
			
			// 基本验证
			if (!formData.formCateId) {
				pageHelper.showModal('请选择分类');
				return;
			}
			
			if (!formData.formName || formData.formName.length < 2) {
				pageHelper.showModal('请填写姓名，至少2位');
				return;
			}
			
			if (!formData.formTitle || !(/^1[3-9]\d{9}$/.test(formData.formTitle))) {
				pageHelper.showModal('请填写正确的手机号码');
				return;
			}
			
			if (!formData.formDept) {
				pageHelper.showModal('请选择部门');
				return;
			}

			// 获取表单组件
			const formComp = this.selectComponent("#cmpt-form");
			
			// 提交表单
			const result = await this.submitForm(formComp);
			if (result) {
				let cb = () => {
					wx.navigateBack();
				}
				pageHelper.showSuccToast('添加成功', 2000, cb);
			}
		} catch (err) {
			console.error('表单提交错误', err);
			pageHelper.showModal('表单提交出错:' + err.message || err);
		}
	},


	bindImgUploadCmpt: function (e) {
		this.setData({
			imgList: e.detail
		});
	},

	url: function (e) {
		pageHelper.url(e, this);
	}
})